package com.ruoyi.order.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 租车订单实例对象 wx_vhiceodr
 *
 * @author ruoyi
 * @date 2024-09-07
 */
public class WxVhiceodr extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private Long id;

    /** 订单来源 */
    private Long orderSource;

    /** 用车单位 */
    @Excel(name = "用车单位")
    private String usingUnitName;

    /** 组织架构id，用于权限控制 */
    @Excel(name = "组织架构id，用于权限控制")
    private Long deptId;

    /** 订单编号 */
    @Excel(name = "订单编号")
    private String orderNum;

    /** 用车人姓名 */
    @Excel(name = "用车人姓名")
    private String username;

    /** 用户手机号 */
    @Excel(name = "用户手机号")
    private String utelphone;

    /** 取车地址 */
    @Excel(name = "取车地址")
    private String pickUpAddress;

    /** 驾驶员身份证 */
    private String driverIdCard;

    /** 驾驶员姓名 */
    @Excel(name = "驾驶员姓名")
    private String driverName;

    /** 驾驶员手机 */
    @Excel(name = "驾驶员手机")
    private String driverPhone;

    /** 支付类型1 线上支付  2 线下支付 3 协议方式  4 现结 */
    @Excel(name = "支付类型1 线上支付  2 线下支付 3 协议方式  4 现结")
    private Long payType;

    /** 取车方式 */
    @Excel(name = "取车方式")
    private Long pickUpMode;

    @Excel(name = "取车表单id")
    private Long pickFormId;

    @Excel(name = "还车表单id")
    private Long returnFormId;

    /** 用车人id（微信登录用户id） */
    private Long wid;

    /** 微信用户openId */
    @Excel(name = "微信用户openId")
    private String openId;

    /** 车辆id */
    @Excel(name = "车辆id")
    private Long cid;

    /** 车牌号 */
    @Excel(name = "车牌号")
    private String carNum;

    /** 车辆名称 */
    @Excel(name = "车辆名称")
    private String carName;

    /** 订单接取责任人（存储当前订单接单人员id） */
    @Excel(name = "订单接取责任人", readConverterExp = "存=储当前订单接单人员id")
    private Long uid;

    /** 租车预定开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "租车预定开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date bookStartTime;

    /** 租车预定结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "租车预定结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date bookEndTime;

    /** 订单开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "订单开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startTime;

    /** 订单结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "订单结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endTime;

    /** 订单状态 */
    @Excel(name = "订单状态")
    private String status;

    /** 每天都单价 */
    @Excel(name = "每天都单价")
    private BigDecimal money;

    /** 支付总金额 */
    @Excel(name = "支付总金额")
    private BigDecimal totalMoney;

    /** 退还金额 */
    @Excel(name = "退还金额")
    private BigDecimal refundMoney;

    /** 是否退还车辆押金 */
    @Excel(name = "是否退还车辆押金")
    private Integer isReturnVehdeposit;

    /** 是否退还违章押金 */
    @Excel(name = "是否退还违章押金")
    private Integer isReturnViodeposit;

    /** 续费次数，续费表关联订单id */
    @Excel(name = "续费次数，续费表关联订单id")
    private Long renewalCount;

    /** 订单总费用 */
    @Excel(name = "订单总费用")
    private BigDecimal totalCost;

    /** 间隔天数 */
    @Excel(name = "间隔天数")
    private Long day;

    /** 尊享服务费 */
    @Excel(name = "尊享服务费")
    private BigDecimal zxServiceFee;

    /** 服务费用 */
    @Excel(name = "服务费用")
    private BigDecimal serviceFee;

    /** 订单类型（1：租车服务，2:包车服务） */
    @Excel(name = "订单类型", readConverterExp = "1=：租车服务，2:包车服务")
    private Long orderType;

    /** 是否开启尊享服务 */
    @Excel(name = "是否开启尊享服务")
    private Integer openZxService;

    /** 是否有额外费用，额外费用表关联订单id */
    @Excel(name = "是否有额外费用，额外费用表关联订单id")
    private Integer isOtherCoast;

    /**  */
    private String delFlag;

    /** 订单来源 0 内部车辆 1 外部车辆 */
    @Excel(name = "订单来源 0 内部车辆 1 外部车辆")
    private Long vehicleDisting;

    /** 业务单位id */
    @Excel(name = "业务单位id")
    private Long bussinessUnitId;

    /** 行程备注，用于包车服务时所需的字段 */
    @Excel(name = "行程备注，用于包车服务时所需的字段")
    private String hodmeterRemark;

    /** 车辆外调费用 */
    @Excel(name = "车辆外调费用")
    private BigDecimal externalFare;

    /** 订单分类 1 携程 2 哈罗 3 悟空 4 自有订单 */
    @Excel(name = "订单分类 1 携程 2 哈罗 3 悟空 4 自有订单")
    private Long orderCategorize;

    /** 取车公里数 */
    @Excel(name = "取车公里数")
    private Long pickUpKilometers;

    /** 取车图片地址 */
    @Excel(name = "取车图片地址")
    private String pickUpVehUrl;

    /** 发车油量 */
    @Excel(name = "发车油量")
    private Long pickUpDepartureFuel;

    /** 车辆取车视频地址 */
    @Excel(name = "车辆取车视频地址")
    private String pickUpVideoUrl;

    @Excel(name = "取车人身份证与驾驶证")
    private String pickUpCardUrl;

    /** 还车公里数（公里） */
    @Excel(name = "还车公里数", readConverterExp = "公=里")
    private Long returnKilometers;

    /** 还车油量 */
    @Excel(name = "还车油量")
    private Long returnDepartureFuel;

    /** 还车图片地址 */
    @Excel(name = "还车图片地址")
    private String returnVehUrl;

    /** 还车视频地址 */
    @Excel(name = "还车视频地址")
    private String returnVehvideoUrl;

    /** 车辆维修发片图片 */
    @Excel(name = "车辆维修发片图片")
    private String vehInvoicePic;

    /** 违章押金 */
    @Excel(name = "违章押金")
    private BigDecimal violationDeposit;

    /** 组合押金 */
    @Excel(name = "组合押金")
    private BigDecimal depositMoney;

    /** 1.短租订单 2.长租订单 */
    @Excel(name = "1.短租订单 2.长租订单")
    private Integer type;

    @Excel(name = "备注")
    private String remark;

    @Excel(name = "是否开启续租")
    private String openXz;

    @Excel(name = "是否需要维修")
    private Boolean isRepair;

    @Excel(name = "还车地址")
    private String returnAddress;

    @Excel(name = "维修金额")
    private BigDecimal repairAmount;

    @Excel(name = "拖欠租金")
    private BigDecimal owedAmount;

    @Excel(name = "租车方式")
    private Integer depositWay;

    @Excel(name = "车辆手续费")
    private BigDecimal fee;

    @Excel(name = "是否已经登记违章记录")
    private Boolean isRecord;

    public Boolean getIsRecord() {
        return isRecord;
    }

    public void setIsRecord(Boolean record) {
        isRecord = record;
    }

    public BigDecimal getFee() {
        return fee;
    }

    public void setFee(BigDecimal fee) {
        this.fee = fee;
    }

    public Boolean getRepair() {
        return isRepair;
    }

    public void setRepair(Boolean repair) {
        isRepair = repair;
    }

    public String getReturnAddress() {
        return returnAddress;
    }

    public void setReturnAddress(String returnAddress) {
        this.returnAddress = returnAddress;
    }

    public BigDecimal getRepairAmount() {
        return repairAmount;
    }

    public void setRepairAmount(BigDecimal repairAmount) {
        this.repairAmount = repairAmount;
    }

    public BigDecimal getOwedAmount() {
        return owedAmount;
    }

    public void setOwedAmount(BigDecimal owedAmount) {
        this.owedAmount = owedAmount;
    }

    public Integer getDepositWay() {
        return depositWay;
    }

    public void setDepositWay(Integer depositWay) {
        this.depositWay = depositWay;
    }

    public String getOpenXz() {
        return openXz;
    }

    public void setOpenXz(String openXz) {
        this.openXz = openXz;
    }

    @Override
    public String getRemark() {
        return remark;
    }

    @Override
    public void setRemark(String remark) {
        this.remark = remark;
    }

    public String getPickUpCardUrl() {
        return pickUpCardUrl;
    }

    public void setPickUpCardUrl(String pickUpCardUrl) {
        this.pickUpCardUrl = pickUpCardUrl;
    }

    public Long getPickFormId() {
        return pickFormId;
    }

    public void setPickFormId(Long pickFormId) {
        this.pickFormId = pickFormId;
    }

    public Long getReturnFormId() {
        return returnFormId;
    }

    public void setReturnFormId(Long returnFormId) {
        this.returnFormId = returnFormId;
    }

    public Long getOrderCategorize() {
        return orderCategorize;
    }

    public void setOrderCategorize(Long orderCategorize) {
        this.orderCategorize = orderCategorize;
    }

    public Long getPickUpKilometers() {
        return pickUpKilometers;
    }

    public void setPickUpKilometers(Long pickUpKilometers) {
        this.pickUpKilometers = pickUpKilometers;
    }

    public String getPickUpVehUrl() {
        return pickUpVehUrl;
    }

    public void setPickUpVehUrl(String pickUpVehUrl) {
        this.pickUpVehUrl = pickUpVehUrl;
    }

    public Long getPickUpDepartureFuel() {
        return pickUpDepartureFuel;
    }

    public void setPickUpDepartureFuel(Long pickUpDepartureFuel) {
        this.pickUpDepartureFuel = pickUpDepartureFuel;
    }

    public String getPickUpVideoUrl() {
        return pickUpVideoUrl;
    }

    public void setPickUpVideoUrl(String pickUpVideoUrl) {
        this.pickUpVideoUrl = pickUpVideoUrl;
    }

    public Long getReturnKilometers() {
        return returnKilometers;
    }

    public void setReturnKilometers(Long returnKilometers) {
        this.returnKilometers = returnKilometers;
    }

    public Long getReturnDepartureFuel() {
        return returnDepartureFuel;
    }

    public void setReturnDepartureFuel(Long returnDepartureFuel) {
        this.returnDepartureFuel = returnDepartureFuel;
    }

    public String getReturnVehUrl() {
        return returnVehUrl;
    }

    public void setReturnVehUrl(String returnVehUrl) {
        this.returnVehUrl = returnVehUrl;
    }

    public String getReturnVehvideoUrl() {
        return returnVehvideoUrl;
    }

    public void setReturnVehvideoUrl(String returnVehvideoUrl) {
        this.returnVehvideoUrl = returnVehvideoUrl;
    }

    public String getVehInvoicePic() {
        return vehInvoicePic;
    }

    public void setVehInvoicePic(String vehInvoicePic) {
        this.vehInvoicePic = vehInvoicePic;
    }

    public BigDecimal getViolationDeposit() {
        return violationDeposit;
    }

    public void setViolationDeposit(BigDecimal violationDeposit) {
        this.violationDeposit = violationDeposit;
    }

    public BigDecimal getDepositMoney() {
        return depositMoney;
    }

    public void setDepositMoney(BigDecimal depositMoney) {
        this.depositMoney = depositMoney;
    }

    public Integer getType() {
        return type;
    }

    public void setType(Integer type) {
        this.type = type;
    }

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setOrderSource(Long orderSource)
    {
        this.orderSource = orderSource;
    }

    public Long getOrderSource()
    {
        return orderSource;
    }
    public void setUsingUnitName(String usingUnitName)
    {
        this.usingUnitName = usingUnitName;
    }

    public String getUsingUnitName()
    {
        return usingUnitName;
    }
    public void setDeptId(Long deptId)
    {
        this.deptId = deptId;
    }

    public Long getDeptId()
    {
        return deptId;
    }
    public void setOrderNum(String orderNum)
    {
        this.orderNum = orderNum;
    }

    public String getOrderNum()
    {
        return orderNum;
    }
    public void setUsername(String username)
    {
        this.username = username;
    }

    public String getUsername()
    {
        return username;
    }
    public void setUtelphone(String utelphone)
    {
        this.utelphone = utelphone;
    }

    public String getUtelphone()
    {
        return utelphone;
    }
    public void setPickUpAddress(String pickUpAddress)
    {
        this.pickUpAddress = pickUpAddress;
    }

    public String getPickUpAddress()
    {
        return pickUpAddress;
    }

    public String getDriverIdCard() {
        return driverIdCard;
    }

    public void setDriverIdCard(String driverIdCard) {
        this.driverIdCard = driverIdCard;
    }

    public void setDriverName(String driverName)
    {
        this.driverName = driverName;
    }

    public String getDriverName()
    {
        return driverName;
    }
    public void setDriverPhone(String driverPhone)
    {
        this.driverPhone = driverPhone;
    }

    public String getDriverPhone()
    {
        return driverPhone;
    }
    public void setPayType(Long payType)
    {
        this.payType = payType;
    }

    public Long getPayType()
    {
        return payType;
    }
    public void setPickUpMode(Long pickUpMode)
    {
        this.pickUpMode = pickUpMode;
    }

    public Long getPickUpMode()
    {
        return pickUpMode;
    }
    public void setWid(Long wid)
    {
        this.wid = wid;
    }

    public Long getWid()
    {
        return wid;
    }
    public void setOpenId(String openId)
    {
        this.openId = openId;
    }

    public String getOpenId()
    {
        return openId;
    }
    public void setCid(Long cid)
    {
        this.cid = cid;
    }

    public Long getCid()
    {
        return cid;
    }
    public void setCarNum(String carNum)
    {
        this.carNum = carNum;
    }

    public String getCarNum()
    {
        return carNum;
    }
    public void setCarName(String carName)
    {
        this.carName = carName;
    }

    public String getCarName()
    {
        return carName;
    }
    public void setUid(Long uid)
    {
        this.uid = uid;
    }

    public Long getUid()
    {
        return uid;
    }

    public void setBookStartTime(Date bookStartTime)
    {
        this.bookStartTime = bookStartTime;
    }

    public Date getBookStartTime()
    {
        return bookStartTime;
    }
    public void setBookEndTime(Date bookEndTime)
    {
        this.bookEndTime = bookEndTime;
    }

    public Date getBookEndTime()
    {
        return bookEndTime;
    }
    public void setStartTime(Date startTime)
    {
        this.startTime = startTime;
    }

    public Date getStartTime()
    {
        return startTime;
    }
    public void setEndTime(Date endTime)
    {
        this.endTime = endTime;
    }

    public Date getEndTime()
    {
        return endTime;
    }
    public void setStatus(OrderOperation status){
        this.status=status.getMakeFlag();
    }
    public void setStatus(String status)
    {
        this.status = status;
    }

    public String getStatus()
    {
        return status;
    }
    public void setMoney(BigDecimal money)
    {
        this.money = money;
    }

    public BigDecimal getMoney()
    {
        return money;
    }
    public void setTotalMoney(BigDecimal totalMoney)
    {
        this.totalMoney = totalMoney;
    }

    public BigDecimal getTotalMoney()
    {
        return totalMoney;
    }
    public void setRefundMoney(BigDecimal refundMoney)
    {
        this.refundMoney = refundMoney;
    }

    public BigDecimal getRefundMoney()
    {
        return refundMoney;
    }

    public void setIsReturnVehdeposit(Integer isReturnVehdeposit)
    {
        this.isReturnVehdeposit = isReturnVehdeposit;
    }

    public Integer getIsReturnVehdeposit()
    {
        return isReturnVehdeposit;
    }
    public void setIsReturnViodeposit(Integer isReturnViodeposit)
    {
        this.isReturnViodeposit = isReturnViodeposit;
    }

    public Integer getIsReturnViodeposit()
    {
        return isReturnViodeposit;
    }
    public void setRenewalCount(Long renewalCount)
    {
        this.renewalCount = renewalCount;
    }

    public Long getRenewalCount()
    {
        return renewalCount;
    }
    public void setTotalCost(BigDecimal totalCost)
    {
        this.totalCost = totalCost;
    }

    public BigDecimal getTotalCost()
    {
        return totalCost;
    }
    public void setDay(Long day)
    {
        this.day = day;
    }

    public Long getDay()
    {
        return day;
    }
    public void setZxServiceFee(BigDecimal zxServiceFee)
    {
        this.zxServiceFee = zxServiceFee;
    }

    public BigDecimal getZxServiceFee()
    {
        return zxServiceFee;
    }
    public void setServiceFee(BigDecimal serviceFee)
    {
        this.serviceFee = serviceFee;
    }

    public BigDecimal getServiceFee()
    {
        return serviceFee;
    }
    public void setOrderType(Long orderType)
    {
        this.orderType = orderType;
    }

    public Long getOrderType()
    {
        return orderType;
    }
    public void setOpenZxService(Integer openZxService)
    {
        this.openZxService = openZxService;
    }

    public Integer getOpenZxService()
    {
        return openZxService;
    }
    public void setIsOtherCoast(Integer isOtherCoast)
    {
        this.isOtherCoast = isOtherCoast;
    }

    public Integer getIsOtherCoast()
    {
        return isOtherCoast;
    }
    public void setDelFlag(String delFlag)
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag()
    {
        return delFlag;
    }
    public void setVehicleDisting(Long vehicleDisting)
    {
        this.vehicleDisting = vehicleDisting;
    }

    public Long getVehicleDisting()
    {
        return vehicleDisting;
    }
    public void setBussinessUnitId(Long bussinessUnitId)
    {
        this.bussinessUnitId = bussinessUnitId;
    }

    public Long getBussinessUnitId()
    {
        return bussinessUnitId;
    }
    public void setHodmeterRemark(String hodmeterRemark)
    {
        this.hodmeterRemark = hodmeterRemark;
    }

    public String getHodmeterRemark()
    {
        return hodmeterRemark;
    }
    public void setExternalFare(BigDecimal externalFare)
    {
        this.externalFare = externalFare;
    }

    public BigDecimal getExternalFare()
    {
        return externalFare;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("orderSource", getOrderSource())
                .append("usingUnitName", getUsingUnitName())
                .append("deptId", getDeptId())
                .append("orderNum", getOrderNum())
                .append("username", getUsername())
                .append("utelphone", getUtelphone())
                .append("pickUpAddress", getPickUpAddress())
                .append("driverCard", getDriverIdCard())
                .append("driverName", getDriverName())
                .append("driverPhone", getDriverPhone())
                .append("payType", getPayType())
                .append("pickUpMode", getPickUpMode())
                .append("wid", getWid())
                .append("openId", getOpenId())
                .append("cid", getCid())
                .append("carNum", getCarNum())
                .append("carName", getCarName())
                .append("uid", getUid())
                .append("bookStartTime", getBookStartTime())
                .append("bookEndTime", getBookEndTime())
                .append("startTime", getStartTime())
                .append("endTime", getEndTime())
                .append("status", getStatus())
                .append("money", getMoney())
                .append("totalMoney", getTotalMoney())
                .append("refundMoney", getRefundMoney())
                .append("isReturnVehdeposit", getIsReturnVehdeposit())
                .append("isReturnViodeposit", getIsReturnViodeposit())
                .append("renewalCount", getRenewalCount())
                .append("totalCost", getTotalCost())
                .append("day", getDay())
                .append("zxServiceFee", getZxServiceFee())
                .append("serviceFee", getServiceFee())
                .append("orderType", getOrderType())
                .append("openZxService", getOpenZxService())
                .append("isOtherCoast", getIsOtherCoast())
                .append("createTime", getCreateTime())
                .append("delFlag", getDelFlag())
                .append("vehicleDisting", getVehicleDisting())
                .append("bussinessUnitId", getBussinessUnitId())
                .append("hodmeterRemark", getHodmeterRemark())
                .append("externalFare", getExternalFare())
                .append("orderCategorize", getOrderCategorize())
                .append("pickUpKilometers", getPickUpKilometers())
                .append("pickUpVehUrl", getPickUpVehUrl())
                .append("pickUpDepartureFuel", getPickUpDepartureFuel())
                .append("pickUpVideoUrl", getPickUpVideoUrl())
                .append("returnKilometers", getReturnKilometers())
                .append("returnDepartureFuel", getReturnDepartureFuel())
                .append("returnVehUrl", getReturnVehUrl())
                .append("returnVehvideoUrl", getReturnVehvideoUrl())
                .append("vehInvoicePic", getVehInvoicePic())
                .append("violationDeposit", getViolationDeposit())
                .append("depositMoney", getDepositMoney())
                .append("type", getType())
                .toString();
    }
}
